#include <iostream>
using namespace std;
//函数重载:C++可以使用，C不能使用

//函数重载的条件是：
    //在同一作用域下，同名函数间，因函数形参列表不同
    //而形成的函数重载关系
    //与返回值类型没有关系
    //列参列表不同：列参的类型，个数，顺序
int add(int a,int b)
{
    return a + b;
}

float add(float a,float b)
{
    return a + b;
}

double add(double a,double b,double c)
{
    return a + b + c;
}

string add(string a,string b)
{
    return a + b;
}

int main(int argc,const char *argv[])
{
    cout << add(1,2) << endl;
    cout << add(3.12f,1.28f) << endl;
    cout << add(13.15,5.12,1.98) << endl;
    cout << add("我最帅",",wozuiniu") << endl;
    return 0;
}
//函数重载底层的原理
//就是编译器在编译阶段根据函数的
//形参列表的不同生成不同的函数名
//所以最终还是不同函数的调用

//函数重载是一种静态多态